package com.hb.core.pojo.project.file.dto;

import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.StrUtil;
import cn.hutool.json.JSONArray;
import com.hb.core.pojo.project.file.entity.BidFileInfo;
import com.hb.core.pojo.project.section.dto.BidSectionDTO;
import io.swagger.annotations.ApiModel;
import lombok.Getter;
import lombok.Setter;
import org.fzzn.core.model.enums.MsgEnum;

import java.util.List;

/**
 * describe:
 *
 * @author zhongdl
 * @date 2021/09/23
 */
@Setter
@Getter
@ApiModel(value = "BidFileInfoDto", description = "招标文件DTO")
public class BidFileInfoDTO extends BidFileInfo {

    /**
     * 关联标段操作前端参数
     */
    private List<Long> sectionIds;

    /**
     * 关联标段时的属性设置
     */
    private BidSectionDTO sectionOptions;

    /**
     * 前端点击保存时的页面
     * 1: 招标文件基本信息保存
     * 2: 文件编制上传保存
     * 3: 完成签章的招标文件的保存
     */
    private Integer fileFormFlag;

    /**
     * 前端渲染字段
     * 发布状态
     */
    private String releaseFlagName;

    /**
     * 收款方式 包含收款方式的详情
     */
    private JSONArray collectionNameIds;

    /**
     * 公告id
     */
    private Long noticeId;

    /**
     * 保存招标文件参数验证
     *
     * @return
     */
    public String paramsValid() {
        if (fileFormFlag == null) {
            return MsgEnum.INCORRECT_PARAM.msg();
        }
        switch (fileFormFlag) {
            case 1:
                if (StrUtil.isEmpty(getFileName())) {
                    return "文件名称必填";
                }
                if (getDocumentSalePrice() == null) {
                    return "请先设置标书售价";
                }
/*                if (getSectionOptions().getClarificationSubmissionEndTime() == null) {
                    return "澄清答疑截止时间不能为空";
                }
                if (getSectionOptions().getDocumentSaleStartTime() == null) {
                    return "文件发售开始时间不能为空";
                }
                if (getSectionOptions().getDocumentSaleEndTime() == null) {
                    return "文件发售结束时间不能为空";
                }*/
                if (sectionOptions == null) {
                    return "参数异常";
                }
                if (sectionOptions.getBond() == null) {
                    return "必须设置保证金金额";
                }
                if (sectionOptions.getBondFlag() == null) {
                    return "请选择是否缴纳保证金";
                }
                if (sectionOptions.getBondPayType() == null) {
                    return "请选择保证金缴纳方式";
                }
                if (sectionOptions.getPriceForm() == null) {
                    return "请选择价款形式";
                }
                if (sectionOptions.getControlPrice() == null) {
                    return "必须设置控制价金额";
                }
                break;
            case 2:
//                if (CollUtil.isEmpty(getDrawing())) {
//                    return "请上传工程量清单及图纸";
//                }
                if (CollUtil.isEmpty(getBiddingDocumentPdf())) {
                    return "请上传招标文件";
                }
                break;
            case 3:
                if (CollUtil.isEmpty(getBiddingDocumentSignaturePdf())) {
                    return "请上传已签章的招标文件";
                }
                break;
            default:
        }
        return null;
    }

    /* 收款方式信息 start */
    private String bankAccount;
    private String bankAccountName;
    private String bankDeposit;
    private String currentImgName;
    private Integer payType;
    private String payeeName;
    private Long payee;
    /* 收款方式信息 end */
}
